perm filename RSXMSG.2[EAL,HE]1 blob
sn#675515 filedate 1982-09-27 generic text, type C, neo UTF8
COMMENT ā VALID 00003 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 program rsxmsg
C00004 00003 (* Message-passing routines: sendArm, getArm, startArm *)
C00009 ENDMK
Cā;
program rsxmsg;
{$NOMAIN Overlaid portion of the RSX message-passing routines}
(* In RSXRUT *)
procedure sndmsg (var res,err: integer); external;
procedure rcvmsg (var res,err: integer); external;
function doRqst: integer; external;
procedure signalArm; external;
(* Message-passing routines: sendArm, getArm, startArm *)
function SendArm: boolean; external;
function SendArm;
var res,err:integer;
begin
sndmsg(res,err); { Send data to arm code (in Root portion) }
if res=0 then
begin { Error during sending message }
write('Error in sendArm: ');
if err = 1 then writeln('ARM not installed!')
else writeln('RSX insuf.dyn.mem!');
break(output);
end;
SendArm := (res<>0); { True if nonzero }
end;
function GetArm: boolean; external;
function GetArm;
var res,err:integer;
begin
rcvmsg(res,err); { Go to Root portion to actually do it }
if err<>0 then
begin { Report the error }
writeln('Error in getArm; err.flag=',err:2);
break(output);
end;
GetArm := (res<>0); { Set TRUE if nonzero }
end;
function startArm: boolean; external; { get ARM task running }
function startArm;
var err: integer;
begin
err := doRqst; { Do the request; in main memory portion }
if err<>0 then
begin { Any error during request? }
writeln('Error in startArm: err.flag=',err:2);
break(output);
end;
startArm := (err=0); { Return true iff no error }
end;